package com.augus.admin.controller;

import com.augus.admin.bean.TCustomerReprieve;
import com.augus.admin.bean.User;
import com.augus.admin.service.TCustomerReprieveService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import java.util.Arrays;
import java.util.List;

@Controller
public class TableController {

  @Autowired
  TCustomerReprieveService tCustomerReprieveService;

  // 不带请求参数或者参数类型不对400; Bad Request一般都是浏览器的参数没有传输正确
  @GetMapping("/basic_table")
  public String basic_table(@RequestParam("a") int a) {
    // int i = 10/0;
    return "table/basic_table";
  }


  @GetMapping("/reprieve/delete/{id}")
  public String deleteUser(@PathVariable("id") Long id, @RequestParam(value = "pn", defaultValue = "1") Integer pn,
                           RedirectAttributes ra) {
    tCustomerReprieveService.removeById(id);
    ra.addAttribute("pn", pn);
    return "redirect:/dynamic_table";
  }

  @GetMapping("/dynamic_table")
  public String dynamic_table(@RequestParam(value = "pn", defaultValue = "1") Integer pn, Model model) {
    /*// 表格内容的遍历
    List<User> users = Arrays.asList(new User("zhangsan","123456"),
                  new User("lisi","132444"),
                  new User("haha","aaaaaa"),
                  new User("hehe","aaddd"));
    model.addAttribute("users",users);*/
    /*if(users.size()>3){
      throw new UserTooManyException();
    }*/

    // 从数据库中查t_user表
    List<TCustomerReprieve> list = tCustomerReprieveService.list();

    // model.addAttribute("tCustomerReprieves",list);
    // 分页查询数据
    Page<TCustomerReprieve> reprievePage = new Page<>(pn, 10);
    Page<TCustomerReprieve> page = tCustomerReprieveService.page(reprievePage, null);
    long current = page.getCurrent();// 第几页
    long pages = page.getPages(); // 总数
    long total = page.getTotal(); // 共记录数

    List<TCustomerReprieve> reprieves = page.getRecords();// 全部信息

    model.addAttribute("page", page);
    return "table/dynamic_table";
  }

  @GetMapping("/responsive_table")
  public String responsive_table() {
    return "table/responsive_table";
  }

  @GetMapping("/editable_table")
  public String editable_table() {
    return "table/editable_table";
  }
}
